package com.ruoyi.syrw.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.yp.domain.vo.BsYpVo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 数据报告业务对象 syrw_bs_data_report
 *
 * @author zyb
 * @date 2024-04-30
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class BsDataReportBo extends BaseEntity {

    /**
     * 唯一标识一份试验任务
     */
    @NotNull(message = "reportId不能为空", groups = {EditGroup.class, QueryGroup.class})
    private Long reportId;

    /**
     * 所属试验类型
     */
    @NotNull(message = "所属试验类型不能为空", groups = {AddGroup.class, EditGroup.class, QueryGroup.class})
    private Long syType;

    /**
     * 所属试验室id
     */
    @NotNull(message = "所属试验室id不能为空", groups = {AddGroup.class, EditGroup.class, QueryGroup.class})
    private Long deptId;

    /**
     * 试验名称
     */
    //@NotBlank(message = "试验名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reportName;

    /**
     * 试验日期
     */
    @NotNull(message = "试验日期不能为空", groups = {AddGroup.class, EditGroup.class})
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reportDate;

    /**
     * 试验截至日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reportDateEnd;

    /**
     * 报告编号
     */
    @NotBlank(message = "报告编号不能为空", groups = {AddGroup.class, EditGroup.class})
    private String bgCode;

    /**
     * 样品编号
     */
    @NotBlank(message = "样品编号不能为空", groups = {AddGroup.class, EditGroup.class})
    private String ypCode;

    /**
     * 记录编号
     */
    @NotBlank(message = "记录编号不能为空", groups = {AddGroup.class, EditGroup.class})
    private String jlCode;

    /**
     * 所属合同id（可能与dept_id存在信息冗余待确定）
     */
//    @NotNull(message = "所属合同id（可能与dept_id存在信息冗余待确定）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long contractId;

    /**
     * 包含excel份数
     */
//    @NotNull(message = "包含excel份数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer excelNums;

    /**
     * excelType类型列表
     */
    private List<BiExcelTypeBo> excelTypeList;

    /**
     * excel类型Id列表
     */
    private List<Long> excelTypeIdList;


    /**
     * 样品信息
     */
    private BsYpVo ypVo;

    /**
     * 进场台账id
     */
    private Long tzId;

    /**
     * 试验任务检测结果
     */
    private Integer reportResult;

    /**
     * 处理方法
     */
    private String clff;
    /**
     * 处理结果
     */
    private String cljg;

    /**
     * 抽检标段试验室id
     */
    private Long checkDeptId;

    /**
     * 物联引入数据json串
     */
    private String dataJson;



}
